/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package desarrollosoft.ghce.entidades;

import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

/**
 *
 * @author ariel
 */
@Entity
@DiscriminatorValue("CONSULTA")
public class Consulta extends Elemento {

    @Column(name = "anamnesis", nullable = false, columnDefinition="TEXT") // text para permitir ingresar mucho texto
    private String anamnesis;
    
    @Column(name = "examenFisico", nullable = true, columnDefinition="TEXT") // text para permitir ingresar mucho texto
    private String examenFisico;
    
    @ManyToOne
    @JoinColumn(name = "diagnostico_id", nullable = true)
    private Diagnostico diagnostico;
    
    public Consulta() {
        super();
    }

    public String getAnamnesis() {
        return anamnesis;
    }

    public void setAnamnesis(String anamnesis) {
        if (anamnesis != null && anamnesis.length() == 0) {
            this.anamnesis = null;
        } else {
            this.anamnesis = anamnesis;
        }
    }

    public String getExamenFisico() {
        return examenFisico;
    }

    public void setExamenFisico(String examenFisico) {
        if (examenFisico != null && examenFisico.length() == 0) {
            this.examenFisico = null;
        } else {
            this.examenFisico = examenFisico;
        }
    }

    public Diagnostico getDiagnostico() {
        return diagnostico;
    }

    public void setDiagnostico(Diagnostico diagnostico) {
        this.diagnostico = diagnostico;
    }

    @Override
    public String getTipificacion() {
        return "Consulta";
    }

    @Override
    public String getDescripcion() {
        if (diagnostico != null) {
            return diagnostico.getNombre();
        }
        return "";
    }
    
    public Consulta clonar() {
        Consulta consulta = new Consulta();
        
        consulta.setId(super.getId());
        consulta.setFecha(super.getFecha());
        consulta.setFechaFin(super.getFechaFin());
        consulta.setGravedad(super.getGravedad());
        consulta.setPaciente(super.getPaciente());
        consulta.setProfesional(super.getProfesional());
        consulta.setAnamnesis(anamnesis);
        consulta.setDiagnostico(diagnostico);
        consulta.setExamenFisico(examenFisico);
        
        return consulta;
    }
}
